package com.java.bubble;

import java.util.Scanner;

//类名BubbluSortManager的建立
public class BubbleSortManager {
//属性：定义数组，成员变量
	int[] arrSort;

	// 方法
	/**
	 * 初始化数组{doInit();}函数 (1)、数组长度; (2)、数组数字;
	 */
	public void doInit() {
		// 数组长度
		Scanner arr = new Scanner(System.in);
		// 使用do-while循环来完成数组长度的设定
		int len = 0;
		do {
			System.out.println("请输入数组的长度：");
			len = arr.nextInt();
		} while (len <= 0);

		// 初始化数组的内容
		arrSort = new int[len];
		for (int i = 0; i < len; i++) {
			System.out.println("请输入该数组的第[" + i + "]个数字：   ");
			int iVal1 = arr.nextInt();
			arrSort[i] = iVal1;

		}

	}

	/**
	 * 冒泡排序的算法
	 */
	public void bubbleSort() {
		// 使用双层for循环，外层for循环控制比较轮数
		for (int i = 0; i < arrSort.length; i++) {
			for (int j = 0; j < arrSort.length - 1; j++) {
				if (arrSort[j] > arrSort[j + 1]) {
					int temp;
					temp = arrSort[j];
					arrSort[j] = arrSort[j + 1];
					arrSort[j + 1] = temp;
				}

			}
		}
	}

	// 打印数组
	public void printArr() {
		for (int i : arrSort) {
			System.out.print("   " + i);
		}
		System.out.println();
	}

	// 冒泡排序入口总方法
	public void dobubbleAll() {
		doInit();
		System.out.println("初始化数据为：");
		printArr();
		bubbleSort();
		System.out.println("冒泡排序之后的数据为：");
		printArr();
	}
}
